Controlling Plunger Drives for Fluid Injections in Animals

ABSTRACT

A computer-controlled injector of the type having a motor which advances and retracts a plunger located within a syringe housing toward and away from a nozzle located in the front of the syringe to inject fluid into or out of an animal subject. Manual motion is induced by operating a manual motion control; the operator can manipulate the control to indicate the desired direction and velocity of motion. The manual motion control also has a locking mode in which manual motion of the plunger will continue once initiated without requiring the operator to continue manipulating the manual motion control. The injector performs injections in accordance with one of several pre-programmed protocols, and automatically tracks the fluid volume remaining. The injector compensates for plunger extenders found in some partially pre-filled syringes by applying a stored offset value to the computed plunger position.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional application of pending application Ser.No. 09/307,633 filed May 7, 1999, which is a divisional of Ser. No.08/919,610 filed Aug. 28, 1997, now U.S. Pat. No. 5,928,197, which is acontinuation of application Ser. No. 08/494,795 filed Jun. 26, 1995, nowU.S. Pat. No. 5,662,612, which is a continuation of application Ser. No.08/157,823 filed Nov. 24, 1993, now abandoned, all entitled CONTROLLINGPLUNGER DRIVES FOR FLUID INJECTIONS IN ANIMALS, all of said applicationsand patents being incorporated by reference herein in their entirety,including the microfiche appendix attached thereto.

BACKGROUND

Injectors are devices that expel fluid, such as radiopaque media(contrast fluid) used to enhance x-ray or magnetic images, from asyringe, through a tube, and into an animal subject. Injectors aretypically provided with an injector unit, adjustably fixed to a stand orsupport, having a plunger drive that couples to the plunger of thesyringe and may move the plunger forward to expel fluid into the tube,or move the plunger rearward to draw fluid into the syringe to fill it.

Injectors often include control circuits for controlling the plungerdrive so as to control the rate of injection and amount of fluidinjected into the subject. Typically, the control circuit includes oneor more manual switches which allow a user to manually actuate theplunger drive to move the plunger into or out of the syringe; typicallythe user holds down a “forward” or “reverse” drive switch to move theplunger in the indicated direction.

To reduce the risk of infection, in a typical injection procedure thesyringe is only used once, and is disposed after use. In some cases, thesyringe is inserted into the injector empty. The empty syringe is filledby retraction of the plunger while the interior of the syringecommunicates with a supply of the contrast fluid via an injection tubeconnected between the nozzle of the syringe and the supply of media.Then, bubbles are removed from the syringe, and the injection isperformed. At the end of the procedure, the syringe plunger typically isforward, as is the plunger drive.

In some injectors, the syringe can only be removed or replaced while theplunger drive is fully retracted. As illustrated in FIG. 1A, typicallyan empty syringe 10 is filled with sterile air, with the plunger 12 atthe fully retracted position as shown. The plunger drive includes a jaw18 designed to engage and disengage a button 14 on the rear side of theplunger while the plunger is in this fully-retracted position. Before anempty new syringe can be filled, it is necessary that the plunger bemoved fully forward in the syringe so that the syringe can be filled byrearward retraction of the plunger. Thus, the reloading operation caninvolve fully retracting the plunger drive to allow removal andreplacement of the syringe, then fully advancing the plunger drive andplunger to expel air from the syringe, and then retracting the plungerdrive and plunger to fill the syringe. These lengthy, manual movementsof the plunger and drive are time consuming.

The above-referenced patent application describes a front-loadinginjector in which a syringe can be replaced even though the plungerdrive is not fully retracted. This injector substantially reduces thenumber of plunger drive movements necessary to prepare a syringe for anew injection; after an injection, the syringe can be removed andreplaced without moving the drive from its fully-advanced position. (Theplunger drive jaw 20 can engage and disengage button 14 regardless ofthe position of the plunger.) After the syringe is replaced, the driveis retracted, filling the syringe for a new injection. Thus, to readythe injector for a new injection, the plunger drive is manually movedonce rather than three times.

Another recent development is the use of pre-filled disposable syringes.A pre-filled syringe also reduces the number of manual plunger drivemovements necessary to prepare the injector for a new injection. Afteran injection, the plunger drive is fully retracted, the used syringe isremoved and replaced with the pre-filled syringe, and the injector isready for a new injection. Thus, again, the plunger drive is manuallymoved once rather than three times.

To prevent infection, contrast media remaining in a syringe after aninjection must be discarded. However, contrast media is relativelyexpensive. For this reason, when preparing for an injection, an emptysyringe is filled with only as much media as will be needed for the nextinjection. For the same reason, pre-filled syringes are sold in a numberof capacities, e.g. ranging from 60 to 125 milliliters, allowing theoperator preparing for an injection to select a syringe containing onlyas much media as is needed for the injection.

A typical pre-filled syringe is illustrated in FIG. 1B. In manyrespects, the pre-filled syringe is identical to the empty syringe shownin FIG. 1A. The barrels 10 and plungers 12 have the same size andprofile in both syringes (injectors now in use accommodate only a fewFDA approved syringe sizes, e.g., a 200 milliliter size and a 125milliliter size, so all syringes use these sizes). Furthermore, bothsyringes have a button 14 which is initially located at the end of thebarrel 10 (thus, both syringes are compatible with injectors which aredesigned to grip a button at the end of the syringe). The maindifference is that in the pre-filled syringe of FIG. 1B, the initiallocation of the plunger 12 is in the middle of the syringe (thusreducing the initial volume of the pre-filled syringe). An extender 16is attached to button 14 of the plunger, and provides a second button 18at the end of the syringe which can be gripped by the injector.

SUMMARY

As noted above, at the present state of the art, preparing an injectorfor an injection requires at least one manual movement of the plungerdrive into or out of the syringe barrel, and as many as three suchmovements. This operation is tedious and inefficient, not only becauseof the time consumed, but also because the operator must press and holdmanual movement switches to produce the movement, and thus is physicallytied to the injector and cannot use this time to make otherpreparations.

In accordance with one embodiment of the present invention, the plungerdrive controller has a locked mode in which motion, initially requestedby pressing a manual movement switch, will continue whether or not theoperator continues pressing the switch, until the plunger drive reachesits fully-advanced or fully-retracted position. Thus, once thecontroller has entered the locked mode, the operator may release themanual switch and the desired movement, either advancement orretraction, will continue while the operator makes other preparationsfor the next injection.

In preferred embodiments, the operator causes the controller to enterthe locked mode by pressing the manual movement switch for apredetermined period of time. For safety, the manual movement switch maycomprise two buttons which must be simultaneously pressed to producemovement. Movement is initiated by pressing both buttons. While bothbuttons are held down, the plunger drive controller increases thevelocity of movement until the velocity reaches a maximum, at which timethe plunger drive controller enters the locked mode. If one button isreleased before the controller reaches maximum velocity and enters thelocked mode, the movement will continue, but at a constant velocity. Ifthe second button is released, the movement will stop. Alternatively, ifthe controller has reached maximum velocity and entered the locked mode,movement will continue even if both buttons are released; however, ifthereafter either button is pressed, movement stops. The controller canprovide visual feedback, for example via a light which blinks duringmotion and lights steadily when the controller is in the locked mode.This light may itself move in synchronism with the plunger drive toprovide further feedback on the speed of motion.

As noted, the plunger drive controller is typically manually controlledby means of a switch which, when depressed, causes the plunger drive tomove in one of two directions. In accordance with a second aspect of theinvention, manual control is improved by providing an adjustment whichallows the operator to adjust the rate at which the plunger drive movesor accelerates. This permits the operator to customize the operation ofthe plunger drive controller to enhance individual comfort.

In preferred embodiments, the manual control comprises a wheel which,when rotated, causes the plunger drive to move at a speed which isproportional to the speed of rotation. Alternatively, the manual controlmay be a forward switch and a reverse switch which cause the plungerdrive to move in the indicated direction at a programmable velocity oracceleration.

To operate effectively, the plunger drive controller must determine thelocation of the plunger 12 relative to the ends of the syringe 10 sothat, for example, the controller can determine the amount of contrastmedia remaining in the syringe. This can be done by a sensor whichdetects the location of the plunger drive jaw 20, which is coupleddirectly to and moves with the plunger 12. However, a pre-filled syringemay include an extender 16 which changes the relative location of theplunger 12 and the plunger drive jaw 20, leading to malfunction in theplunger drive controller. In accordance with a third aspect of theinvention, malfunction is avoided by storing an offset valuerepresentative of the length of the extender 16, and applying thisoffset value to the computed drive jaw position.

In preferred embodiments, the offset value may be computed by queryingthe operator as to the capacity of the syringe and determining therefromthe appropriate offset value. The controller may be configurable so thatthis query is not made (for example, if the injector will not be usedwith pre-filled syringes, and therefore the offset value will notchange). Alternatively, the offset value may be automatically computedby detecting physical indicia on the syringe or extender which indicatethe length of the extender.

These and other aspects will be further illustrated in the followingdetailed description with reference to the attached drawings, in which:

BRIEF DESCRIPTION OF THE FIGURES

FIGS. 1A and 1B are side, partial cut-away views of an empty syringe anda pre-filled syringe, respectively.

FIGS. 2A, 2B and 2C respectively illustrate the console, powerhead, andpowerpack of an injector.

FIGS. 3, 4, and 5 are electrical and electrical-mechanical blockdiagrams of the powerpack, console and powerhead, respectively.

FIGS. 6A, 6B, 6C, 6D, 6E and 6F are illustrations of displays producedby the console in operation of the injector.

FIGS. 7A, 7B, 7C, 7D, 7E, 7F and 7G are flow charts illustrating thesoftware operating within the power pack.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Referring to FIGS. 2A, 2B and 2C, an injection system according to theinvention includes three main components, a console 30, a powerhead 40and a powerpack 50.

The console 30 comprises a liquid crystal display 32 of the type used innotebook computers (e.g., a display sold by Sharp Electronics Corp. of5700 N.W. Pacific Rim Blvd., Camas, Wash. 98607 as part number LM64P62),coupled to an eight key keypad 34 within a housing 36. As is furtherelaborated below, display screens presented on display 32 provideinjection information and present the user with menus of one or morepossible operations, each operation associated with one of the keys onkeypad 34.

The powerhead 40 includes a mount 42 (such as that described in theabove-referenced patent application) which accepts a syringe 10 for aninjection. The powerhead includes a plunger drive motor (not shown) formoving plunger 12 forward into and rearward out of syringe 10 during aninjection in accordance with a preprogrammed sequence, or protocol,selected by the operator by operation of the console 30.

The location and movement of the plunger drive is indicated by a lightemitting diode (LED) which is mounted to the plunger drive and isvisible to the operator through a graduated window 44 in the side of thepowerhead 40. As noted below, this LED flashes when the plunger drive ismoving, and lights steadily when the plunger drive has been manuallylocked into forward or reverse motion in the manner described below.

The side of the powerhead 40 includes six pushbuttons: a start/stopbutton 45, a forward manual motion button 46, a reverse manual motionbutton 47, and an enable/accelerate button 48. The threeenable/accelerate buttons 48 perform the same function; there are threebuttons instead of one to improve operator accessibility.

The start/stop button 45 is used to start an injection protocol selectedat the console, or to stop and restart an injection. During aninjection, all of the eight buttons on the keypad 34 of the console 30will perform an identical start and stop function. Furthermore, a remotehandswitch (not shown) may be connected to the powerpack 50 (see below)to perform a start and stop function. (For this reason, the start/stopbutton 45 includes a picture of a handswitch.)

To manually move the plunger drive, the operator must simultaneouslypress a motion button 46 or 47 and an enable button 48. This is a safetyfeature which reduces the risk of accidental movement of the plunger. Ifthe operator presses the forward button 46 and any of the three enablebuttons 48, the plunger will begin forward motion; conversely, if theoperator presses the reverse button 47 and any of the three enablebuttons 48, the plunger will begin reverse motion. Once motion isinitiated in either direction, the operator may release one of thebuttons; motion will be maintained at a constant velocity in the samedirection so long as any one of the five buttons 46, 47 or 48 is helddown. If, instead, after initiating motion in one direction, theoperator continues to hold down an enable button 48 and a motion button46 or 47, motion will not only be maintained in the same direction, butwill be accelerated in this direction until either the operator releasesone of the buttons or a maximum velocity is achieved. At any time duringthe acceleration, the operator may release one of the buttons and holddown the other, and the motion will continue at the same velocitywithout acceleration. Thereafter, the operator can re-depress thereleased button, at which time acceleration will begin again.

If the velocity of motion increases to a maximum value, the plungerdrive controller (described in more detail below) will enter a lockedmode. In this locked mode, movement will continue at the maximumvelocity in the same direction even if the operator releases all of thebuttons. This frees the operator to perform other tasks when preparingfor an injection without being forced to hold manual buttons on theinjector until the plunger drive has made the lengthy transition to itsfully-advanced or fully-retracted position.

For safety reasons, the locked mode can be terminated readily. If theoperator has entered the locked mode and thereafter released all of thebuttons, if at any time thereafter any of the buttons is pressed, theplunger drive controller will exit the locked mode and terminate motion.

Two lights 49A and 49B mounted on the rear of the powerhead 40 indicatethe status of operation of the injector. Light 49A is an injecting/faultindicator. This light glows while an injection is in process. It willflash if an error is detected. Light 49B is an enabled indicator. Itglows when the injector has been enabled and is ready to perform aninjection protocol.

The rear end of the powerhead 40 (opposite mount 42) includes a jogwheel or switch (not shown in FIG. 2B, see 163, FIG. 5) used, in themanner described below, to manually activate motion of the plungerdrive.

The powerpack 50 illustrated in FIG. 2C contains electronics whichcommunicate with the console 30 and powerhead 40 to perform thefunctions described above. The powerpack is connected to the console 30and powerhead 40 by standard computer communications cables (not shown).Signals carried on these cables are interfaced to circuitry inside ofthe powerhead, console, and powerpack in a manner described below.

As shown in FIG. 3, the circuitry in the powerpack includes a centralprocessing unit (CPU) 52 which controls the operations of the powerhead40 and console 30. The CPU is preferably a programmable microprocessorsuch as the MC68332FN microprocessor, manufactured by Motorola, 2110East Elliot, Tempe, Ariz. 85284. This microprocessor is a member of the68000 family of microprocessors and features multitasking support; it isdesigned for use in so called “embedded” environments such as thecircuit described herein, and therefore has more than the usual numberdirect-wired input-output ports.

The CPU connects to an address bus 54 for addressing a number of memoryand communications components and a data bus 56 for retrieving and/orsending data from and to these components. Buffers 55 and 57 aid CPU 52in interfacing to the address and data busses, respectively. Each of theelements connected to the address and data busses are briefly describedbelow.

An erasable programmable read-only memory (EPROM) 58 connected to databus 56 contains the program software which operates the CPU 52. TheEPROM contains an operating system, which performs low-level managementof the CPU and its communications with other circuits, and a customprogram for controlling the console and powerhead to perform injectionprotocols. In one embodiment, the operating system software is theUSX68K operating system, a multi-tasking operating system for 68000series microprocessors sold by U.S. Software of 14215 N.W. Science ParkDrive, Portland, Oreg., 97229, and the custom program is written in the“C” programming language. This custom program is described below, and acopy of the “C” language source code for the custom program appears inthe appendix to this application.

A second EPROM 60 connected to data bus 56 contains language informationused by the program software in EPROM 56 when generating displays forpresentation on the display 32 (FIG. 2A). As will be further elaboratedbelow, the display screens presented on the display 32 include textualdescriptions of actions being taken by the injector, and menu selectionswhich the operator can select. The textual portions of these displayelements are stored in the language EPROM 56, from which they areretrieved and inserted into a template as CPU 52 is producing a displayscreen. Preferably, the language EPROM contains multiple versions ofeach textual insert, representing different languages, so that theoperator can, through menu choices entered at the console keypad 34,choose a preferred language in which to generate screen displays. Anexemplary set of languages suitable for the North American and Europeanmarkets would be English, German, French and Spanish.

A third, electrically erasable and programmable read only memory(EEPROM) 62 is attached to the data bus. EEPROM 62 stores data in anon-volatile manner (so that it will not be lost when the power isturned off). Among other things, EEPROM 62 stores preprogrammedinjection protocols. These protocols are created and stored by the useras desired (details are reviewed with reference to FIG. 6A, below). Inaddition, EEPROM 62 stores calibration information, used by CPU 52 ininterpreting fluid pressure and plunger position information which itreceives while performing an injection. Further, EEPROM 62 storesinformation on the most recently completed injection, such as theinjection time and volume, so that this information may be retrieved bythe operator. EEPROM 62 also stores operator preference data entered bythe operator into the console (see FIG. 6E, below). This includes thepreferred display language, time, and date formats. Moreover, EEPROM 62stores operating parameters such as a programmable pressure limit, and aflag (used in the manner described below) indicating whether theinjector will be used with partially pre-filled syringes of the kindillustrated in FIG. 1B. Finally, EEPROM 62 stores the registered nameand/or number of the machine owner, to facilitate service and on-linecustomer support.

Data bus 56 is also connected to a random access memory (RAM) 64 whichis used by the operating system to store a stack of register valuesgenerated during CPU operations and machine state informationcorresponding to currently inactive processes running on the CPU. Theapplication software uses the remaining space in RAM 64 (as managed andallocated by the operating system) to store variables computed andmanipulated during operation of the injector.

Most communications between CPU 52 and the powerhead 40 and console 30flow through one of two universal asynchronous receiver/transmitters(UARTs) 66, 68 which are connected to the data bus. A UART is acommunications circuit, generally available in integrated circuit form,which collects and buffers incoming and outgoing information to enableasynchronous communications between processors or computing systems overa data link. A suitable UART is the MC68681, sold by Motorola. The firstUART 66 is responsible for communications with the powerhead circuitry(see FIG. 5, below), which pass through an interface 70 and acommunications cable 71 connected to the powerhead. (However, pulsesfrom the optical encoder 166 on the powerhead (FIG. 5, below) traveldirectly from interface 70 along line 71 to an interrupt input on theCPU 52.) UART 66 also handles communications with an auxiliary interface72, which can be coupled through a communications cable 73 to a printerto allow CPU 52 to print records of an injection. Alternatively,interface 72 (or another, similar interface) can be used to attach CPU52 to a remote computer or other external device to allow remotemonitoring and/or control of the injector.

The second UART 68 is responsible for communication with the console 30(FIG. 2A). Two consoles 30 can be connected to the powerpack via cables75, 76.

Cables 75 and 76 carry data representing keystrokes and screen activitybetween the powerpack 50 and console 30. This data is encoded in acommunications protocol and transmitted in accordance with the RS422standard. The encoded data is carried via lines 75 and 76 to interface74 which encodes and decodes transmissions for a second UART 68. UART 68routes keystrokes received by either console via interface 74 to CPU 52via the data bus 56, and further routes display information produced byCPU 52 to interface 74 for transmission to the consoles via lines 75Aand 76A.

Cables 75 and 76 also include, on separate conductors, lines 75B and76B, which carry logical signals corresponding to key 38 (FIG. 2A) ofeach console keyboard. As elaborated below, the software driving theconsole displays is written so that key 38 is the most frequently usedkey—depending on the screen being displayed, key 38 will function as an“Exit” key to depart the screen, an “Enter” key to accept a value orselection and depart the screen, or a “Disable” or “Cancel” key toterminate an operation. (Exemplary screens are discussed below withreference to FIGS. 6A-6F.) Because key 38 is the most frequently usedkey, and because key 38 is used for time-sensitive input such as acancel command, key 38 is connected to the CPU 52 differently than theother keys. Key 38 is connected directly to the CPU 52 via an interruptline 79; when a keystroke is detected, a non-maskable interruptinterface (NMI) 78 (which essentially constitutes a RS422 transmitterand receiver which converts the signal on lines 75B and 76B to a cleanlogic signal on line 79) sets an interrupt on line 79, which isimmediately detected and subsequently serviced by CPU 52.

A similar interface is used for the remote handswitch. The cable 81leading from the handswitch connects to the handswitch interface circuit80 which among other things, electrically isolates the handswitch fromthe powerpack ground, and “de-bounces” the handswitch (eliminateselectrical noise created when the switch is pressed or released) so asto provide a clean logic signal indicating whether the handswitch buttonis being pressed or is released. This logic signal is connected, vialine 82, to a time processor unit (TPU) port on CPU 52. CPU 52 reads thelogic signal at this TPU port and responds appropriately according tothe software in EPROM 58.

The last component on the CPU data bus 56 is an analog to digitalconverter (AID) 84. This converter is used to generate a digital signal,readable through data bus 56, which corresponds to an analog signalreceived on line 85. A suitable A/D converter is the LT1094, sold byLinear Technology of 1630 McCarthy Blvd., Milpitas, Calif. 95035. A/Dconverter 84 is used by the motor servo control circuitry describedbelow. The CPU has two additional interfaces to the motor servo controlcircuitry: an interface on line 87 to a digital to analog converter(D/A) 86 (which generates an analog signal on line 88 corresponding to adigital signal received on line 87, for example the AD7245, sold byAnalog Devices of One Technology Way, P.O. Box 9106, Norwood, Mass.02062), and a second interface on line 90 to pressure limit controlcircuit 92. These interfaces (lines 87 and 90) connect to synchronousperipheral interface (SPI) channels on the microprocessor, and arecontrolled in accordance with the software in EPROM 58.

The D/A 86, A/D 84, servo control 94, pressure limit control 92, andpressure sense 96 circuits collectively form a motor servo controlcircuit which controls the operation of the motor 98 which drives thesyringe plunger into and out of the syringe. (Motor 98 is shown forclarity, but it should be understood that motor 98 is physically locatedin the powerhead 40 (FIG. 2B, 5); lines 91 and 93 connect to the motorthrough several conductors of the computer interface cable connectingthe powerhead 40 and the powerpack.)

Servo control circuit 94 responds to an analog voltage produced by D/A86 on line 88 and produces a corresponding voltage between lines 99 and100. The voltage on lines 99 and 100 is transformed by transformer 102to a level sufficient to drive motor 98 via lines 91 and 93. Servocontrol circuit 94 contains a flyback transformer circuit which producesan output voltage related to the duty cycle of a switching FET. Thisduty cycle is produced by a UC3525 pulse width modulation (PWM)circuit—an integrated circuit which produces a 100 kHz digital outputsignal having a duty cycle which varies from 0% to 50% in response to ananalog input voltage on line 88. A suitable PWM circuit is the UC3525,sold by Unitrode of 7 Continental Boulevard, Merrimack, N.H. 03054.Thus, CPU 52 controls the speed and power output of motor 98 by writinga digital word representing a desired output voltage to D/A 86 via lines87; this digital word is then converted to an analog signal, and theanalog signal is converted to a pulse width modulated control signal inthe servo control, resulting in the desired output voltage at the motor.

Pressure sense circuit 96 includes a current sense circuit of whichdetects the current flow through line 93 (i.e., through the motor) andproduces analog signals on lines 104 and 85 proportional to the detectedcurrent. In essence, this current sense circuit comprises a low-value,high power rating resistor in series with line 93 which is attached tothe motor 98. A differential voltage amplifier (based on a low-noise,high common mode rejection op-amp) senses the voltage across theresistor and converts it to an analog voltage on lines 85 and 104. Thecurrent flow through the motor is proportional to the force exerted bythe motor and therefore to the injection pressure. Thus, the analogsignals produced by pressure sense circuit 96 can be used to derive theinjection pressure.

Pressure limit control circuit 92 uses the analog signal on line 104 toperform a hardware pressure control function. Pressure limit controlcircuit 92 contains a commercially available digital potentiometer, usedto produce an analog comparison voltage. A suitable potentiometer is theDS1267, sold by Dallas Semiconductor of 4350 Beltwood Parkway South,Dallas, Tex. 75244. CPU 52 (via lines 90) programs this potentiometer toproduce a comparison voltage corresponding to the maximum allowablepressure. Pressure limit control circuit 92 includes a comparator whichcompares the analog signal on line 104 produced by pressure sensecircuit 96 to the comparison voltage. If the pressure exceeds themaximum allowable pressure (indicating a failure in the CPU 52), adigital signal is transmitted on line 105 to servo control circuit 94,which in response ignores the analog signal on line 88, and insteadreduces the voltage on lines 99 and 100 to halt the motor. Thus, oncethe CPU 52 has programmed pressure limit control circuit 92 with thecorrect maximum pressure, the injector will not exceed this pressureeven if the CPU 52 fails.

Under normal conditions, this hardware pressure limit will not beactivated, because CPU 52 continuously obtains feedback on theperformance of the motor and the pressure produced and controls themotor through D/A 86 to achieve the desired injection protocol. CPU 52obtains feedback on an ongoing injection from three sources: (1)feedback on the injection pressure is obtained from A/D 84, whichproduces a digital word on bus 56 corresponding to the analog voltage online 85 produced by pressure sense circuit 96; (2) feedback on the motorspeed is obtained from an optical encoder 166 physically coupled to themotor inside of the powerhead 40 (elaborated with reference to FIG. 5,below); and (3) feedback on the position of the plunger inside of thesyringe is obtained from a linear potentiometer 168 physically coupledto the plunger (see FIG. 5, below). Using this information, CPU 52carefully controls the injection pressure, volume and speed according toa pre-programmed protocol under control of software in EPROM 58.

Power for the powerpack, powerhead, and console display is supplied bythe AC power lines 107 and 108. The AC line voltage is conditioned by aconventional power supply circuit 106 which includes a transformer whichcan be adjusted for use with non-United States line voltages, and avoltage sense circuit for selecting the appropriate transformer based onthe detected line voltage. The power may be turned off by unplugging theinjector, or preferably by a toggle switch which opens and closes asolid-state relay in remote on/off circuit 110.

Referring to FIG. 4, the console circuitry is also built around ageneral purpose CPU 120. A suitable microprocessor is the MC68332FN. Theaddress bus 122 and data bus 124 connected to CPU 120 connect to anumber of supporting circuits. Program ROM 126 contains the softwarewhich directs CPU 120. (This software is written in assembly language,and is included in the attached appendix). Font ROM 128 includes fontinformation retrieved by CPU 120 in producing fonts for text generatedon the display screen. These fonts include foreign-language characterswhere necessary to support foreign language text. RAM 130 is used bymicroprocessor in performing display and retrieval operations.Battery-backed RAM 132 stores the current time of day, so that thepowerpack may make a date and time-stamped record of an injection.

The primary function of the console circuitry is to generate screens onthe display 32, and to receive keystrokes from the eight-key keypad 34(FIG. 2A) and relay the keystrokes to the powerpack. Displays aregenerated by a display controller 134, such as the F82C455 VGAcontroller sold by Chips & Technologies of 3050 Zanker Road, San Jose,Calif. 95134. This VGA controller interacts with CPU 120 via an addressbuffer 136 and data buffer 138, and stores screen information in adynamic random access memory (DRAM) 140. Information is sent over lines142 to the display 32.

Keystrokes from the keypad are received by keyboard interface circuit144 which “debounces” the keystrokes, producing clean logic signals onlines 146. These logic signals are fed back to CPU 120 so that it mayconfirm keystrokes by producing an audible tone through speaker controlcircuit 150. Speaker control circuit also generates unique audiblesignals to indicate other operations, such as the initiation of aninjection, or to notify the operator that scanning should begin. Asuitable controller is the MC3487, sold by Motorola.

CPU 120 communicates with the powerpack via an RS-422 interface circuit148 which sends and receives digital signals over lines 75 and 76.Interface circuit 148 also receives and forwards keystrokes directlyfrom keyboard interface 144. The eight keys on the console form asingle, eight bit byte of information (where each bit indicates whetherthe key is pressed or released). This byte is coupled directly to CPU120 via a “245” type logical buffer.

+28 Volt DC power is received from the power supplies in the powerpackvia lines 152. A power supply circuit 154 regulates this +28 Volt DCpower line into a collection of supply voltages, as needed by thevarious circuitry in the console. Furthermore, a power inverter circuitconverts +12 Volt DC power produced by the power supply circuit 154 intolow-current 600 Volt AC power supplies for energizing the liquid crystaldisplay.

Referring to FIG. 5, the powerhead also includes a circuit board 160including microprocessor to perform communications with the powerpack 50(FIG. 2C). A suitable microprocessor is the 68HC11E2, sold by Motorola,which is a low-cost, minimal functionality microprocessor in the 68000family. The circuit board receives and forwards keystrokes from thebuttons on the keyboard 162 (described above), and electrical pulsesindicating movements from the manual knob 163 mounted on the rear of thepowerhead. A suitable manual knob is the model 600 thumbwheel, sold byClarostat of 1 Washington Street, Dover, N.H. 03820. The circuit boardalso lights and extinguishes the injecting/fault indicator light 49A andthe enabled indicator light 49B.

The motor 98 is coupled to a gear box which translates rotary motion ofthe motor to linear translation of the plunger. One suitable motor isthe CYMS A2774-2 motor, sold by Barber-Colman, P.O. Box 7040, Rockford,Ill. 61125. The rotation of the motor is detected by optical encoder 166(encoder 166 essentially comprises a pinwheel which rotates between alight source and a light detector to produce electrical pulses, forexample the HEDS-9100 encoder, sold by Hewlett-Packard of 3003 ScottBoulevard, Santa Clara, Calif. 95054). Encoder 166 sends electricalpulses to circuit board 160, which relays them to powerpack 50, allowingCPU 52 on the powerpack to monitor movement of the motor.

The position of the plunger is detected by a linear potentiometer 168,for example the LCPL200, sold by ETI Systems of 215 Via Del Norte,Oceanside, Calif. 92054. The wiper 169 of potentiometer 168 ismechanically coupled to and moves with the plunger 12. A DC voltage dropis placed across the potentiometer terminals 170 and 171, and as aresult, an analog voltage representative of the location of the plungerand wiper 169 is produced at the wiper 169. An A/D converter on circuitboard 160 converts this analog voltage to a digital signal which circuitboard 160 forwards to the powerpack 50.

Circuit board 160 also detects the output of two Hall effect sensors 172and 174. The powerhead has a removable face plate 42 (FIG. 2B). Thereare currently two different face plates having differently-sizedapertures for accepting differently-sized syringes. Thus, although theface plate need not be removed to replace the syringe, it may be removedto use a different syringe size. Sensor 172 detects whether face plate42 is open, and if so circuit board 160 sends a message to powerpack 50which prevents any further injection procedures until the face plate isclosed. Sensor 174 detects the size of the face plate in use. Currently,only one of the two face plates includes a magnet which triggers sensor174; thus, circuit board can determine which face plate has beeninstalled by determining whether sensor 174 has been triggered. Thisinformation is also forwarded to CPU 52 in the powerpack so that CPU 52may compensate for the different syringe sizes when controlling motor 98(as described below).

At the direction of CPU 52, circuit board 160 also controls heaterblanket 176, which heats the contrast fluid in the syringe. Furthermore,circuit board 160 controls movement indicator board 178. Movementindicator board 178 is mechanically coupled to the plunger 12 andincludes two light emitting diodes LEDs 179 which are visible throughwindow 44 on the powerhead (FIG. 2B). LEDs 179 provide the operator withfeedback on the position of the plunger, by correlating the position ofthe diodes with the graduated scale on window 41. The two sides of thewindow 41 contain different graduated scales: one calibrated for largesyringes and one for small syringes. Depending on the syringe sizedetected by sensor 174, the LED next to the appropriate graduated scaleis illuminated. Furthermore, as discussed in more detail below, when theplunger is moving, CPU 52 directs circuit board 160 to flash the LED.Also, when the CPU 52 enters its “locked mode” (discussed above), CPU 52directs circuit board 160 to steadily light the LED. Thus, LEDs 179provide operator feedback on the plunger position, direction of motion,and the “locked mode”.

Referring to FIGS. 6A-6F, an injection protocol will be described fromthe operator's perspective. The main operating screen is illustrated inFIG. 6A. Box 200, which is associated with an iconic representation 201of the powerhead, identifies the current volume of contrast media in thesyringe. Box 202, which is associated with an iconic representation 203of the syringe, identifies the total volume which has been dispensedduring the currently selected protocol. Box 204 identifies the pressurelimit pre-selected by the operator for the procedure, and box 206identifies a scan delay (in seconds), which is the delay from the timethe operator initiates an injection (either with the handswitch, a keyon the console or a button on the powerhead) until the x ray or magneticscan of the subject should begin (at the end of this delay, CPU 120produces a tone indicating to the operator that scanning should begin;alternatively, scanning could be automatically initiated by a suitableelectrical connection between the scanner and injector). In theillustrated situation, the syringe contains 180 ml of fluid, 30 ml ofwhich will be used by the currently selected protocol, the pressurelimit is 200 psi and there is no scan delay.

In the display illustrated in FIG. 6A, the upper regions of the screendisplay stored injection protocols. Region 208 identifies protocolswhich the operator may select, and region 210 gives details of thecurrently selected protocol. As shown in region 210, a protocolcomprises a number of phases; during each phase the injector produces apre-programmed flow rate to output a pre-programmed total fluid volume.The illustrated protocol “SERIO VASCUL” has only one phase; however,other protocols which can be selected by the operator have multiplephases. In region 208, protocols are identified by name and by number ofphases; thus, as illustrated, the “LIVER” protocol has 2 phases and the“ABDOMEN PI” protocol has 3 phases.

The user can select protocols, enable an injection, and otherwisenavigate through display screens by pressing the buttons on the keypad34 next to the display. Region 212 of the display is dedicated toidentifying the functions available from the buttons on the keypad 34.Thus, in this display illustrated in FIG. 6A, the user may select theprevious or next protocol in the list in region 208 by pressing thebuttons next to the words “PREVIOUS PROTOCOL” and “NEXT PROTOCOL”,respectively, on the display. The user may also change and store theflow, volume and inject delay values for the current protocol bypressing the button next to “CHANGE VALUES”; doing so will alter thefunction of the keypad and region 212 of the display, so that theoperator may select a value, increment and decrement the value, selectcharacters to form or edit a protocol name, and then return to thedisplay shown in FIG. 6A. From FIG. 6A, the operator may also enter acontrol panel display (see FIG. 6E, below) to adjust operatingparameters and other data. Also, the operator may enter a protocolmanager in which the operator may rename or delete protocols, and maydetermine the order of the protocol list shown in region 208. Finally,the user may also enable an injection from the display illustrated inFIG. 6A by pressing the button next to “ENABLE”.

As shown in FIG. 6B, when the user enables an injection, as a safetymeasure, the injector first presents a text box 214 which asks theoperator whether all of the air has been evacuated from the syringe.Region 212 of the display contains only the words “YES” and “NO”,indicating that the operator must answer the question as either yes orno. If the button next to “NO” is pressed, the injection will becancelled. If the answer is “YES”, the injector will proceed to anenabled state, illustrated in FIG. 6C. Here, region 208 of the displayindicates the expected duration, and region 212 includes the word“START”, “AUTO ENABLE” and “EXIT”. If the operator presses the buttonnext to “EXIT”, the injector will return to the state illustrated byFIG. 6A. If the operator presses the button next to “AUTO ENABLE”, theinjector will toggle into and out of the auto-enabled mode, as confirmedby a briefly-displayed box in the center of the screen. If the operatorpresses the button next to “START” the injection will begin and theinjector will move to the state illustrated by FIG. 6D.

While an injection is proceeding, the display shown in FIG. 6D isdisplayed. In this display, region 208 indicates the total injectiontime and the volume (in ml) delivered to the patient. Region 212 showsthe word “STOP” next to each of the buttons on the keypad 34, indicatingthat the operator may stop the injection by pressing any of the buttons(or by pressing the start/stop button 45 on the powerhead, or bypressing the handswitch). In addition, in box 200, the total volume offluid in the syringe counts down as fluid in injected into the subject.

After the injection protocol has completed, the injector will returneither to the state illustrated by FIG. 6A or to the state illustratedby FIG. 6C. If the operator put the injector in the auto-enable mode bypressing “AUTO ENABLE” at FIG. 6C, the injector will return to the stateillustrated by FIG. 6C. However, if the operator did not put theinjector into the auto-enable mode, the injector will return to thestate illustrated by FIG. 6A. Thus, by placing the injector inauto-enable mode, the operator can more easily repeat an injectionprotocol; this can be useful where, for example, the contrast mediadissipates relatively rapidly, and multiple images will be taken on thesame area of the subject. By using “AUTO ENABLE”, the operator mayreplenish the contrast media just before each image by pressing a singlekey (or the handswitch), without re-enabling the injector.

As noted above, injection operators may wish to use prefilled syringesfor injections. However, prefilled syringes often include extenderswhich reduce the filled volume of the syringe (syringes of this type areknown as “partial pre-filled” syringes). The injector described hereinincludes a feature for compensating for the reduced volume of partialpre-filled syringes, described below.

As noted above, to set up the injector, the operator may enter the“Control Panel”, illustrated in FIG. 6E. In the control panel, thedisplay identifies the current operational settings of the injector.Thus, the control panel includes a box 220 which identifies the currentpressure limit, a box 222 which identifies the current language (asnoted above, the operator may choose a language for the textual portionsof the display), boxes 226 and 228 which identify the current time anddate, and a box 230 which identifies the owners registration name and/ornumber. This information is entered using the keypad and region 212 ofthe display in the manner discussed above.

An additional box 232 on the “Control Panel” display is used to indicatewhether partial pre-filled syringes will be used with the injector. Box232 will include the word “YES” or “NO”, as selected by the operator (asshown in FIG. 6E, when the user attempts to modify this box, region 212of the display provides a menu with the choices “YES” or “NO”).

If the operator has modified box 232 to indicate that partial pre-filledmay be used (i.e., box 232 has a “YES”), then the enable proceduredescribed above is modified slightly. If partial pre-filleds may beused, after the operator enables an injection by pressing “ENABLE” atthe display of FIG. 6A, the injector presents the screen illustrated inFIG. 6F, in which the operator must identify the pre-filled syringe sizeby pressing a button next to “50 ml”, “65 ml”, “75 ml”, “100 ml”, or“125 ml”. Once the operator has identified the pre-filled syringe size,the injector will continue to the display illustrated in FIG. 6B. CPU 52(FIG. 3) will then compensate for the extender in the syringe, in themanner described below with reference to FIG. 7B.

Referring to FIG. 7A, the program operating in CPU 52 is initiated 240when the power is turned on. The program first initializes 242 thehardware and software attached in powerpack 50, powerhead 40 and display30. Then, CPU 52 performs 244 diagnostics to ensure that the injector isoperating properly; essentially, this involves sending test data tovarious hardware elements and verifying that the appropriate responsesare received.

After these diagnostics have passed, CPU 52 initiates a number of“threads”, or parallel processes; thereafter, these processes aretime-multiplexed on CPU 52 under control of the above-described USX68Koperating system. These threads communicate with the operating systemand with each other by “messages” or semaphores—essentially,interprocess communications are placed in a globally accessible area,managed by the operating system, where they can be later retrieved byother threads. The operating system allocates processing time to thethreads. Much of the time, a thread will be “inactive”, i.e., it willnot have any pending operations to perform. The threads are generallywritten so that, if the thread is inactive, it will notify the operatingsystem of this fact (“return time” to the operating system) so that theoperating system can reallocate processing time to another thread.

The operating system allocates processing time to threads in aprioritized, round-robin fashion. Thus, the operating system willprovide processing time to each thread generally in turn; if an active,low-priority thread uses more than a maximum amount of processing time,the operating system will interrupt the thread, and provide other,higher priority threads with an opportunity to use processing time.However, a high-priority thread will not be interrupted by lowerpriority threads, regardless of whether the high-priority thread usesmore than the maximum amount of processing time. Under normal operation,most of the threads are inactive, and there is no conflict betweenthreads for processing time; however, in those occasions where there isa conflict, this prioritized system allows the most important threads tocontinue uninterrupted where necessary. It should be noted, however,that even the highest priority thread (servo thread 254) occasionallyreturns time to the operating system (at those moments where aninterruption can be tolerated), so that other threads are able tocontinue their operations even while the highest priority thread isactive.

The threads operating in the CPU 52 generally fall into two categories:“communicating” threads which send information into and out of thepowerpack 50, and “operating” threads which generate or process theinformation sent or received by the powerpack. There are two operatingthreads: state machine thread 246 and servo thread 254.

State machine thread 246 directs the console 30 to produce screendisplays of the type shown in FIGS. 6A-6E, and also processes buttonpresses by the user. Thread 246 is essentially a state machine, whereeach “state” corresponds to a display screen, and each operatorkeystroke produces a state transition. The software in program EPROM 58(FIG. 3) essentially defines a state transition diagram, identifyingspecific states, displays associated with those states, and, for eachstate, the keystrokes or other activity which will cause a transition toanother state.

As shown in FIG. 7B, when initiated, thread 246 looks 270 for a message,for example a message from a communications thread indicating thatconsole button was pressed, or a message from the servo threadindicating that the display should be updated to reflect recentinjection activity. If no message has been received, the thread returns272 time to the operating system. However, if a message has beenreceived, the thread uses the software in program EPROM 58 to identifyand transition 274 to the new state associated with the receivedkeystroke or activity. In some cases, e.g. where the operator haspressed an invalid button, the new state will be the same as the oldstate; in other cases, the new state will be a different state. If thenew state is a different state, the state machine thread sends messagesto the appropriate communication thread to modify 276 the screen toreflect the new state. In addition, the state machine thread may send278 messages to the servo thread, e.g. to notify the servo thread thatthe operator has pressed a button which starts a protocol. When this iscompleted, the state machine returns 280 to the operating system.

When a start message is sent to the servo thread, the thread sending themessage initiates one or more global variables to indicate the kind ofmovement requested. Eight global variables (variables managed by theoperating system and accessible by all threads), organized into fourpairs, are used for this purpose. Each pair of variables identifies adesired new position for the plunger and a speed at which the plungershould move to that position. Four protocol phases can be described bythe four variable pairs, and thus may be executed in one message to theservo thread. Thus, when the state machine thread sends 278 a message tothe servo thread, it computes one or more desired ending positions andspeeds from the selected protocol, and places the computed values intoglobal variables.

Referring to FIG. 7C, when initiated by the operating system, the servothread 254 first checks 282 for a message telling the servo to startmotion of the plunger. If no message is received, the servo threadreturns 284 time to the operating system. If, however, a start messagehas been received, the servo thread starts 286 the motor to move to thedesired position indicated by a global variable at the desired speedindicated by a global variable. At this point, the servo thread enters aloop; during each iteration the loop checks 288 if the plunger hasarrived at the desired position (the plunger position is determined bythe powerhead receive thread 260 as illustrated in FIG. 7E, below), andif so, the loop terminates and the servo thread stops 290 the motor andreturns. However, if the plunger has not arrived at the desiredposition, the servo thread checks 292 if the speed of the motor iscorrect (the motor speed is measured by an interrupt routine illustratedin FIG. 7D, below). If the motor speed is incorrect, it is corrected 294by adjusting the motor voltage. Once these steps are completed, theservo thread allows 296 the operating system three time slices (about 21milliseconds) to operate other processes, after which it returns to step288 to close the loop.

Referring to FIG. 7D, as noted above, the motor speed is measured by aninterrupt routine. When a pulse is detected from the optical encoder 166(FIG. 5) attached to the motor 98, the processor in the powerheadcircuit board 160 causes an interrupt to travel on line 71 to CPU 52.When this interrupt is received 300, the interrupt routine computes 302the time elapsed from the previous count interrupt, and from thiselapsed time computes 304 the plunger speed. This speed value is stored306 in a global variable (where it can be accessed by the servoroutine), and the interrupt is done 308.

Referring to FIG. 7E, the powerhead receive thread 260 is responsiblefor receiving messages from the powerhead and performing a number oftasks in response, including relaying manual movements of the plunger tothe servo thread and (as noted above) relaying position measurements tothe servo thread during movement of the plunger.

When the operating system initiates 260 the powerhead thread, the threadfirst checks 310 for any messages; if none have been received, thethread returns 312 time to the operating system. However, if the threadhas received a message, it determines 312 what the message is and actsappropriately (this determination is illustrated for clarity as amulti-way branch, but in the code in the fiche appendix it isimplemented as a series of individual tests performed on in sequence).The message may contain an error message 314, a manual knob movement316, a linear potentiometer reading 318 (which are periodicallygenerated by the powerhead), a fill button reading 320 (which isperiodically generated by the powerhead), a start/stop button press 322,or several others (multiple messages may be received at one time).

As shown in FIG. 7E, if the message contains a linear potentiometerreading 318, the reading is converted 324 into an equivalent volume(using calibration readings stored in EEPROM 62). Then, an offset value(which compensates for the presence of the extender in a partialpre-filled syringe), is subtracted 326 from the computed volume, and theresult is stored in a global variable, where it can be later accessed bythe servo thread at step 288 (FIG. 7C). The offset value used in step326 is generated when the user identifies the partial pre-filled size inresponse to the display shown in FIG. 6F; if partial pre-filled syringesare not used, the offset is set to a constant zero value. Once theadjusted volume is stored, the powerhead thread returns 328 time to theoperating system.

As shown in FIG. 7F, when a fill button reading is received (i.e., thereceived message indicates the state of buttons 46, 47 and 48 on thekeyboard 162 of the powerhead), the powerhead thread first determines330 which button, or buttons, are pressed.

If a “fast” button 48 and the forward button 46 or reverse button 47 arepressed 332, the thread first determines 334 whether the motor is at itsmaximum, latching speed (by reading the global variable indicating themotor speed, as produced by the interrupt routine illustrated in FIG.7D). If not, the thread increases 336 the motor speed in the indicateddirection—by increasing the value of the global variable identifying thedesired speed, setting the global variable identifying the desiredlocation to identify the end of the syringe (and sending a start servomessage to the servo thread if the motor is not already running)—andreturns 338 time to the operating system. If, however, the motor hasreached its latching speed, then the thread determines 340 if buttonswere pressed the last time a fill button reading was processed. If so,then the operator has accelerated the motor to its maximum speed and iscontinuing to hold down the buttons. In this situation, the motor shouldcontinue running at its maximum speed; therefore, the thread simplyreturns 338 time to the operating system. If, however, buttons were notpressed last time, then the operator latched the motor at maximum speed,released the buttons, and some time later pressed a button in an attemptto stop the motor. Thus, in this situation, the thread stops 342 themotor (by setting the global variable indicating the desired speed tozero), and returns 338 time to the operating system.

If the operator is pressing 344 the forward or reverse buttons alone, orany other combination of buttons, the thread first determines 346 if themotor is running (by checking the value of the global variableindicating the motor speed). If the motor is not running, then a singlekeystroke will not start it running, so the thread simply returns 338 tothe operating system. If, however, the motor is running, then the threaddetermines 348 if buttons were pressed the last time a fill buttonreading was processed. If buttons were pressed last time, then theoperator is merely trying to keep the motor running at its current speedby holding a button down; therefore, in this situation, the threadsimply returns 338 to the operating system, allowing the motor tocontinue running. If, however, buttons were not pressed last time, thenthe operator latched the motor at maximum speed, released the buttons,and some time later pressed a button in an attempt to stop the motor.Thus, in this situation, the thread stops 342 the motor (by setting theglobal variable indicating the desired speed to zero), and returns 338time to the operating system.

If no buttons are pressed 352, the thread simply determines 354 if themotor is at its latching speed. If not, the thread stops 356 the motorand returns time to the operating system. Otherwise, the thread returns338 directly, allowing the motor to continue running at the latchingspeed.

Referring to FIG. 7G, manual motion can also be created by turning themanual knob 163 (FIG. 5) mounted on the rear of the powerhead. As notedabove, the powerhead CPU 160 regularly reports movements of the manualknob to the powerpack CPU 52. This report identifies the direction ofrotation and the number of electrical pulses received from the knobsince the last report (more pulses indicating greater speed ofrotation). When a manual knob message is received 316, the powerheadreceive thread first computes 340 a desired plunger speed from thenumber of pulses identified in the message, and computes 342 a desiredend position from the number of pulses and the direction of rotation ofthe knob. These are then stored 344 in global variables accessible tothe servo thread as described above. If the motor is not alreadyrunning, the powerhead receive thread also sends a servo start messageto the servo thread. Then the thread returns 346 time to the operatingsystem.

The invention has been described with reference to a specificembodiment. However, it will now be understood that variousmodifications and alterations can be made to this specific embodimentwithout departing from the inventive concepts embodied therein. Forexample, the manual motion knob 163 may be replaced by any other controlwhich allows velocity and direction control, for example by a button orknob which can be rotated or rocked to multiple positions correspondingto various velocities and directions of motions, or a set of buttons orknobs which allow the operator to separately select a desired velocitywith one button or knob and a desired direction with another button orknob. As various changes could be made in the above-described aspectsand exemplary embodiments without departing from the scope of theinvention, it is intended that all matter contained in the abovedescription shall be interpreted as illustrative and not in a limitingsense.

1. A medical fluid injector comprising: a plunger drive for moving aplunger of a syringe forward and rearward inside the syringe; anelectronic control circuit controlling the plunger drive; and a halleffect sensor connected to the control circuit for delivering a firstsignal to the control circuit indicative of a magnetic field, thecontrol circuit responding to the first signal to alter operatingfunctions of the injector.
 2. The injector of claim 1, wherein thecontrol circuit controls the plunger drive to move the plunger in thesyringe in accordance with a preprogrammed injection protocol.
 3. Theinjector of claim 1, further comprising a mount that accepts a syringefor an injection, wherein the hall effect sensor is located adjacent themount.
 4. The injector of claim 2, further comprising a mount thataccepts a syringe for an injection, wherein the hall effect sensor islocated adjacent the mount.
 5. The injector of claim 3 or 4, furthercomprising a removable face plate that comprises the mount.
 6. Theinjector of claim 3 or 4, wherein the mount comprises a magnet, and thehall effect sensor is positioned to detect magnetic field from themagnet to identify the mount.
 7. The injector of claim 1, furthercomprising a second hall effect sensor connected to the control circuitfor delivering a second signal to the control circuit indicative of amagnetic field, the control circuit responding to the first and secondsignals to alter operating functions of the injector.
 8. The injector ofclaim 7, further comprising a face plate having a mount that accepts asyringe for an injection, the face plate incorporating magnets at firstand second locations, the hall effect sensors positioned to detectmagnetic field from the magnets at the first and second locations toidentify the face plate.
 9. The injector of claim 8, further comprisinga second face plate having a mount, said second face plate incorporatinga magnet at the first location, the hall effect sensors detectingmagnetic field from the first location and the absence of magnetic fieldfrom the second location to identify the face plate.
 10. The injector ofclaim 1, wherein the control circuit uses the first signal to compensatefor a size of a syringe mounted to the injector when controlling theplunger drive.
 11. The injector of claim 10, wherein the control circuitresponds to the first signal by altering an end of travel position towhich the plunger drive will move the plunger inside the syringe. 12.The injector of claim 10, wherein the control circuit responds to thefirst signal by altering a syringe capacity.
 13. The injector of claim12, wherein the control circuit identifies the syringe capacity to aninjector operator.
 14. The injector of claim 1, further comprising amount that accepts a syringe for an injection, wherein the first signalfrom the hall effect sensor identifies whether the mount is in an opencondition or a closed condition.
 15. The injector of claim 13, furthercomprising a removable face plate that comprises the mount.
 16. Theinjector of claim 1 wherein the plunger drive comprises a motor, a driveram, and a gear box for translating rotary motion generated by saidmotor to linear motion of said drive ram.
 17. The injector of claim 16wherein said control circuit comprises a current sensor detecting anelectrical current delivered to said motor, the control circuitresponsive to said current sensor to identify a pressure generatedwithin said syringe.
 18. The injector of claim 1 wherein said controlcircuit comprises a digital circuit and an analog to digital converterfor converting analog signals from said current sensor to digitalsignals for use by said digital circuit in identifying a pressuregenerated within said syringe.
 19. The injector of claim 1 wherein saidcontrol circuit comprises a digital circuit and a digital to analogconverter for converting control signals generated by said digitalcircuit to analog signals for controlling said plunger drive.
 20. Theinjector of claim 1 wherein said injector further comprises a keypad andcontrol circuit comprises a keyboard interface for receiving signalsfrom said keypad indicative of keypresses by a user for use incontrolling said plunger drive.
 21. The injector of claim 1 wherein saidcontrol circuit further comprises a digital interface for coupling saidcontrol circuit to an external system to allow remote monitoring and/orcontrol of the injector.